package com.bdqn.design;

import com.bdqn.design.factory.SimpleDaoFactory;
import com.bdqn.reflect.dao.PersonDao;
import com.bdqn.reflect.service.PersonService;
import com.bdqn.reflect.service.impl.PersonServiceImpl;

import java.util.Scanner;

/**
 * Test01SimpleDaoFactory
 *
 * @author LILIBO
 * @since 2024/7/4
 */
public class Test01SimpleDaoFactory {

    private static final Scanner input = new Scanner(System.in);


    /**
     * 程序入口（终端）
     *
     * @param args
     */
    public static void main(String[] args) {
        // 依赖倒置
        PersonService personService = new PersonServiceImpl();
        // 通过简单工厂获取PersonDao的实例
        // PersonDao personDao = SimpleDaoFactory.getInstance();
        // 通过简单工厂获取PersonDao的实例，根据标记获取实例
        System.out.println("请输入数据库：");
        String type = input.next(); // 控制台输入
        PersonDao personDao = SimpleDaoFactory.getInstance(type);
        // 在set方法中传入DAO层实现类的对象
        personService.setPersonDao(personDao);

        // 调用业务层的方法
        personService.list();
    }

}
